<?php
require('init.php');

require('../upgrade.php');

require(LIBWWWDIR . '/forms.php');

ini_set("upload_max_filesize", SOURCESIZE * 1024);

require(LIBWWWDIR . '/header.php');
//comprobar si se ha subido un archivo para este problema
//da click en el icono upload
if( isset($_GET['pid']) && isset($_GET['cid']) )
{
	$probid = $_GET['pid'];	
	//$nres=exist_file($probid, $conn_db1);
	$inner = is_inner_contest($_GET['cid'], $conn_db1);
	if($inner)
		$conexion = $conn_db2;
	else
		$conexion = $conn_db1;

	$nres=exist_file($probid,$conexion);
//si no  existe el pdf del problema
	if( $nres == 0 ){
		echo '<h1>Submit Problem Archive to '.$probid."".'</h1>'.
		addForm("guardar_archivo.php", 'post', null, 'multipart/form-data') .
	 	addHidden('id', @$_GET['pid']) .'Problem archive:' .
		addHidden('cid', @$_GET['cid']) .
	 	addFileField('problem_archive') .
	 	addSubmit('Upload', 'upload') .
	 	addEndForm();
	}else{
		if ( isset($_GET['ope']) ) {	//operaciones sobre pdf existente
		}else{
			echo '<h1>Changes Problem Archive to '.$probid."".'</h1><table><li>'.
'<a href="guardar_archivo.php?pid='.$probid.'&ope=chang&cid='.$_GET['cid'].'">Change Problem archive '.
			'<img src="../images/upload_file.png" title="Change Problem archive " ></a></li>'.
			'<li><a href="guardar_archivo.php?pid='.$probid.'&ope=del&cid='.$_GET['cid'].'">'.
		'Delete Problem archive <img src="../images/delete.png" title="Delete Problem archive " >'.
		'</a></li></table>';
		}
	}
}
//si elige subir el pdf del problema
if( isset($_POST['upload']) ) 
{
	$nombre  = $_FILES["problem_archive"]["name"];
	//$tipo    = $_FILES["problem_archive"]["type"];
	$tipo    =  mime_content_type($_FILES["problem_archive"]["tmp_name"]);
	$taman = $_FILES["problem_archive"]["size"];
//$contenido =  addslashes($_FILES["problem_archive"]["tmp_name"]);
	$contenido = file_get_contents($_FILES["problem_archive"]["tmp_name"]);
	//averiguar la necesidad de usar mysql_real_escape_string o addslashes
	$leng = strlen($contenido);
	$id = $_POST['id'];
	if ( !empty($nombre) ) 
	{
		if( $tipo == "application/pdf")
		{
			if( $leng != 0 )
			{

			$inner_c = is_inner_contest($_POST['cid'], $conn_db1);
			if($inner_c)
			{
				//insertar en db2
				submit_file_db2($id, $nombre,$contenido, $tipo, $taman, $conn_db2);
				header('Location: problems.php');
			}else{
				//insertar en db1
			$DB->q('RETURNID INSERT INTO set_problems (probid, nombre, contenido, tipo, size)
				VALUES (%s, %s, %s, %s, %i)',$id, $nombre, $contenido, $tipo, $taman);

			header('Location: problems.php');
			}
				
				//comentarios estado inseerciones para bd1
				/*if($nid)
					echo "se ha guardado con exito". $id;
				else
					"Problemas al guardar". $id;*/
				
			}else{
				error("Archivo vacio");	
			}	
		}else{
			error("No es un archivo pdf");
		}	
	}else{
		error("Missing filename for problem upload");
	}
}

if ( isset($_GET['ope']) && isset($_GET['cid']) ) {
	//consultar datos del problema
	$pid = $_GET['pid'];
	$inner_c = is_inner_contest($_POST['cid'], $conn_db1);

	if($inner_c)
	{
		$d_problem = datos_problem($pid,'');
		$fname = $d_problem[1];
		$fid = $d_problem[0];
	}else{
		$d_problem = datos_problem_db2($pid,$conn_db2);
		$fname = $d_problem[1];	
		$fid = $d_problem[0];
	}
	
	if( $_GET['ope']== "chang" ){
		echo '<h1>Change Problem Archive to '.$pid."".'</h1>';
		echo '<table><td>Current Problem Archive: &nbsp;</td>'.
			"<td>"."$fname"."</td><td></table><br>".
		addForm("guardar_archivo.php", 'post', null, 'multipart/form-data') .
	 	addHidden('prob', $pid) .'Problem archive:' .
		addHidden('fid', $fid) .
		addHidden('cid', @$_GET['cid']) .
	 	addFileField('problem_archive') .
	 	addSubmit('Submit changes', 'submit') .
	 	addEndForm();
	}else{
		echo addForm('guardar_archivo.php','post') .
		addHidden('proid', $_GET['pid']).
		addHidden('id', $fid);
		addHidden('cid', @$_GET['cid']) ;
		echo msgbox (
		"Really delete?",
		"You're about to delete problem archive to <strong>".$_GET['pid'].
		"</strong> <br/><br/>" .
		"Are you sure?<br /><br />" .
		addSubmit(" Never mind... ", 'cancel') .
		addSubmit(" Yes I'm sure! ", 'confirm') ).
		addEndForm();	
	}		
}

if ( isset($_POST['cancel']) ) {
	header('Location: problems.php');
}

if (isset($_POST['confirm'] ) ) {
	$inner_c = is_inner_contest($_POST['cid'], $conn_db1);

	if($inner_c)
	{
		//bd1
		$DB->q("DELETE FROM set_problems WHERE probid = %s", $_POST['proid']);
		header('Location: problems.php');
	}else{
		//db2
		delete_file_db2($_POST['proid'], $_POST['id'], $conn_db2);
		echo "proid ".$_POST['proid']." fid ".$_POST['id'];
		header('Location: problems.php');
	}
}

if ( isset($_POST['submit']) ) {
	$nombre  = $_FILES["problem_archive"]["name"];
//	$tipo    = $_FILES["problem_archive"]["type"];
	$tipo    =  mime_content_type($_FILES["problem_archive"]["tmp_name"]);
	$taman = $_FILES["problem_archive"]["size"];
	$contenido = file_get_contents($_FILES["problem_archive"]["tmp_name"]);
	$leng = strlen($contenido);
	
	$id = $_POST['prob'];
	if ( !empty($nombre) ) {
		if( $tipo == "application/pdf"){
			if( $leng != 0 )
			{
			$inner_c = is_inner_contest($_POST['cid'], $conn_db1);
			if($inner_c)
			{
				//actualizar archivo en db2
				$fid = $_POST['fid'];
				change_file_db2($id, $nombre, $contenido, $tipo, $taman, $fid, $conn_db2);
				header('Location: problems.php');
			}else{
				//actualizar archivo en db1
				$DB->q('UPDATE set_problems SET nombre = %s, contenido = %s, tipo = %s, 				size = %i  WHERE probid = %s', $nombre, $contenido, $tipo, $taman, $id);
				header('Location: problems.php');
			}	
			}else{
				error("Archivo vacio");	
			}	
		}else{
			error("No es un archivo pdf");
		}	
	}else{
		error("Missing filename for problem upload");
	}
}


?>
